package com.wxd.service;

import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import net.sf.json.JSONArray;

public interface DevService {

	/**
	 * 获得设备运行的信息,分页并带条件
	 * 
	 * @param start
	 *            开始的记录数 从 0 开始
	 * @param limit
	 *            每页的记录条数
	 * @return
	 */
	public JSONArray getDevRunInfo(int start, int limit, String devSpi,
			String ownUnit, String startTime, String endTime);

	/**
	 * 获得所有设备规格
	 * 
	 * @return
	 */
	public JSONArray getDevSpiList();

	/**
	 * 获得所有单位
	 * 
	 * @return
	 */
	public JSONArray getOwnUnitList();

	/**
	 * 获得所有操作员列表
	 * 
	 * @return
	 */
	public JSONArray getOperatorList();

	/**
	 * 获得所有设备列表
	 * 
	 * @return {devCode,devName}
	 */
	public JSONArray getDevList();

	/**
	 * 根据参数获取数据并组织excel
	 * 
	 * @param devSpi
	 * @param ownUnit
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public HSSFWorkbook getExcelInfo(String devSpi, String ownUnit,
			String startTime, String endTime);

	/**
	 * 统计在给定参数条件下的总设备数、总记录数和总运行时间
	 * 
	 * @param devSpi
	 * @param ownUnit
	 * @param startTime
	 * @param endTime
	 * @return [{1:总设备数}，{2:总记录数},{3:总运行时间}]
	 */
	public Map statistics(String devSpi, String ownUnit, String startTime,
			String endTime);

	/**
	 * 获得设备数量
	 * 
	 * @param type
	 *            1:按照公司分类 2：按照设备规格分类
	 * @return
	 */
	public StringBuffer devCount(String type);

	/**
	 * 获得设备基本信息条数
	 */
	public int getDevBaseRecordCount(String devSpi, String ownUnit,
			String operator);

	/**
	 * 获得设备的基本信息
	 */
	public JSONArray geDevBaseInfo(int start, int limit, String devSpi,
			String ownUnit, String operator);

	/**
	 * 根据参数获取数据并组织设备基本信息excel
	 * 
	 * @param devSpi
	 * @param ownUnit
	 * @param operator
	 * @return
	 */
	public HSSFWorkbook getDevBaseExcelInfo(String devSpi, String ownUnit,
			String operator);

	/**
	 * 获得设备维护信息总记录条数
	 * 
	 * @param devCode
	 * @param devSpi
	 * @param ownUnit
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public int getDevMaintainRecordCount(String devCode, String devSpi,
			String ownUnit, String startTime, String endTime);
	
	/**
	 * 获得设备维护记录信息
	 * @param startNum
	 * @param limitNum
	 * @param devCode
	 * @param devSpi
	 * @param ownUnit
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public JSONArray getDevMaintainInfo(int startNum, int limitNum,
			String devCode, String devSpi, String ownUnit, String startTime,
			String endTime);
	
	
	/**
	 * 下载设备维护信息
	 * @param devCode
	 * @param devSpi
	 * @param ownUnit
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public HSSFWorkbook downloadDevWHInfo(String devCode,String devSpi,String  ownUnit,String startTime,String endTime);
	
	
	/**
	 * 返回归属公司设备按月的运行时间
	 * @return
	 */
	public JSONArray getDevMonthRunInfo(int year);
	
	/**
	 * 获得设备总运行时间的top 10
	 * @return
	 */
	public JSONArray getTopRunTimeInfo();
	
	/**
	 * 获得设备总运行里程的top 10
	 * @return
	 */
	public JSONArray getTopRunDistanceInfo();
}
